﻿/*
 Copyright aswing.org, see the LICENCE.txt.
*/

import org.aswing.plaf.custom.css.Parser;
import TextField.StyleSheet;
import org.aswing.plaf.basic.BasicLookAndFeel;
import org.aswing.plaf.custom.parser.StyleParser;
import org.aswing.UIDefaults;
import org.aswing.plaf.custom.parser.XMLStyleParser;
import org.aswing.plaf.ASFontUIResource;
import org.aswing.plaf.custom.parser.ParserLog;

/**
 * @author Miguel Serrano 
 */
class org.aswing.plaf.custom.CustomLookAndFeel extends BasicLookAndFeel{
	
	private var dynamicDefaults:Array
	
	function CustomLookAndFeel(){
		super();	
	}
	
	public function getDefaults():UIDefaults{
		var table:UIDefaults = new UIDefaults();
		this.initClassDefaults(table);
		this.initSystemColorDefaults(table);
		this.initSystemFontDefaults(table);
		this.initDynamicDefaults(table);
		this.initComponentDefaults(table);
		this.initDynamicDefaults(table);
		return table;
	}
	
	private function initClassDefaults(table:UIDefaults):Void{
		super.initClassDefaults(table);
	}
	
	private function initSystemColorDefaults(table:UIDefaults):Void{
		super.initSystemColorDefaults(table);
	}
	
	private function initSystemFontDefaults(table:UIDefaults):Void{
		super.initSystemFontDefaults(table);
		
	}
	
	private function initComponentDefaults(table:UIDefaults):Void{
		super.initComponentDefaults(table);
	}
	
	private function initDynamicDefaults(table:UIDefaults):Void{
		table.putDefaults(this.dynamicDefaults);
	}	
	public function setCSSStyle(css:StyleSheet):Void{
		StyleSheetTracer.display(css);		
		this.dynamicDefaults = Parser.parse(css);
	}
}
